package xin.codedream.codelog.dao;

import org.apache.ibatis.annotations.Param;
import xin.codedream.codelog.model.entity.Comment;

import java.util.List;

/**
 * 文章评论数据访问层
 *
 * @author NGLSL
 * @date 2018/8/29
 */
public interface CommentDao {
    /**
     * 根据文章Id查询评论
     *
     * @param articleId 文章ID
     * @return List
     */
    List<Comment> listCommentByArticleId(@Param("articleId") Long articleId);

    /**
     * 通过文章Id删除相关的评论
     *
     * @param articleId 文章Id
     * @return int
     */
    int deleteCommentByArticleId(@Param("articleId") Long articleId);

    /**
     * 统计所有评论数量
     *
     * @return int
     */
    int countAllCommentQuantity();

    /**
     * 查询最近五条评论
     *
     * @return List
     */
    List<Comment> listFiveComment();

    /**
     * 获取所有评论
     *
     * @param commContent 评论内容
     * @return List
     */
    List<Comment> listAllComment(@Param("commContent") String commContent);

    /**
     * 通过评论ID删除评论
     *
     * @param commId 评论Id
     * @return int
     */
    int deleteCommentById(@Param("commId") Long commId);

    /**
     * 通过Id更新评论状态
     *
     * @param comment 评论数据
     * @return int
     */
    int updateCommentStatusById(Comment comment);

    /**
     * 通过评论Id查找评论信息
     *
     * @param commId 评论Id
     * @return Comment
     */
    Comment selectCommentById(@Param("commId") Long commId);
}
